home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / plain C OS8 / Temperature / DDocData.c < prev    next >
Encoding:
Text File  |  1998-10-29  |  1.3 KB  |  81 lines  |  [TEXT/CWIE]

  1. // DDocData.cp -- data container class for Temperature
  2.  
  3. #include "PString.h"
  4. #include "DDocData.h"
  5.  
  6. #include <stdlib.h>
  7.  
  8. //----------
  9. DDocData*        NewDDocData ()
  10. {
  11.     DDocData*        data;
  12.  
  13.     data = (DDocData*)malloc (sizeof (DDocData));
  14.     DDocData_Init (data);
  15.  
  16.     return data;
  17. }
  18.  
  19. //----------
  20. void    DeleteDDocData (
  21.     DDocData*        data)
  22. {
  23.     DDocData_Free (data);
  24.     free (data);
  25. }
  26.  
  27. //----------
  28. void    DDocData_Init (
  29.     DDocData*        self)
  30. {
  31.     AMSignaler_Init ((AMSignaler*) self);
  32.  
  33.     self->mCentigrade = 10;
  34.     self->mFahrenheit = 50;
  35. }
  36.  
  37. //----------
  38. void    DDocData_Free (
  39.     DDocData*        self)
  40. {
  41.     AMSignaler_Free ((AMSignaler*) self);
  42. }
  43.  
  44. //----------
  45. SInt32        GetCentigrade (
  46.     DDocData*        self)
  47. {
  48.  
  49.     return self->mCentigrade;
  50. }
  51.  
  52. void    SetCentigrade (
  53.     DDocData*        self,
  54.     SInt32        inValue)
  55. {
  56.     self->mCentigrade = inValue;
  57.         self->mFahrenheit = ((18 * self->mCentigrade) + 5) / 10 + 32;
  58.     SignalDataChanged ((AMSignaler*) self, idFahrenheit);
  59.  
  60.     SignalDataChanged ((AMSignaler*) self, idCentigrade);
  61. }
  62.  
  63. //----------
  64. SInt32        GetFahrenheit (
  65.     DDocData*        self)
  66. {
  67.  
  68.     return self->mFahrenheit;
  69. }
  70.  
  71. void    SetFahrenheit (
  72.     DDocData*        self,
  73.     SInt32        inValue)
  74. {
  75.     self->mFahrenheit = inValue;
  76.         self->mCentigrade = ((10 * (self->mFahrenheit - 32)) + 9) / 18;
  77.     SignalDataChanged ((AMSignaler*) self, idCentigrade);
  78.  
  79.     SignalDataChanged ((AMSignaler*) self, idFahrenheit);
  80. }
  81.